<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
*  \file
*
*  \brief       BMW SWC StdDiag
*
*  This file is the internal part of the software component description of the module StdDiag
*  for usage in the BMW AUTOSAR Core.
*
*  \project     BMW Platform Software
*
*  \copyright   BMW AG 2015 - 2017
*
*  \version     5.4.0
*
*/

/*
*
*  THIS FILE WAS GENERATED. DO NOT MODIFY!
*
*  GENERATOR       : BMW PAGe 1.1.0
*
*  GENERATION TIME : 2018-01-22 11:15:00.812191
*
*/
-->
<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-3-0_STRICT_COMPACT.xsd">
  <AR-PACKAGES>
    <AR-PACKAGE>
      <SHORT-NAME>BMW</SHORT-NAME>
      <AR-PACKAGES>
        <AR-PACKAGE>
          <SHORT-NAME>Platform</SHORT-NAME>
          <AR-PACKAGES>
            <AR-PACKAGE>
              <SHORT-NAME>StdDiag</SHORT-NAME>
              <AR-PACKAGES>
                <AR-PACKAGE>
                  <SHORT-NAME>SwcImplementations</SHORT-NAME>
                  <ELEMENTS>
                    <SWC-IMPLEMENTATION>
                      <SHORT-NAME>Impl_StdDiag</SHORT-NAME>
                      <CODE-DESCRIPTORS>
                        <CODE>
                          <SHORT-NAME>Code1</SHORT-NAME>
                          <ARTIFACT-DESCRIPTORS>
                            <AUTOSAR-ENGINEERING-OBJECT>
                              <SHORT-LABEL>-</SHORT-LABEL>
                              <CATEGORY>-</CATEGORY>
                            </AUTOSAR-ENGINEERING-OBJECT>
                          </ARTIFACT-DESCRIPTORS>
                        </CODE>
                      </CODE-DESCRIPTORS>
                      <PROGRAMMING-LANGUAGE>C</PROGRAMMING-LANGUAGE>
                      <RESOURCE-CONSUMPTION>
                        <SHORT-NAME>ResConsumption1</SHORT-NAME>
                      </RESOURCE-CONSUMPTION>
                      <SW-VERSION>5.4.0</SW-VERSION>
                      <SWC-BSW-MAPPING-REF DEST="SWC-BSW-MAPPING">/BMW/Platform/StdDiag/SwcBswMappings/StdDiagSwcBswMapping</SWC-BSW-MAPPING-REF>
                      <VENDOR-ID>5</VENDOR-ID>
                      <BEHAVIOR-REF DEST="SWC-INTERNAL-BEHAVIOR">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag</BEHAVIOR-REF>
                    </SWC-IMPLEMENTATION>
                  </ELEMENTS>
                </AR-PACKAGE>
                <AR-PACKAGE>
                  <SHORT-NAME>SwComponentTypes</SHORT-NAME>
                  <ELEMENTS>
                    <APPLICATION-SW-COMPONENT-TYPE>
                      <SHORT-NAME>StdDiag</SHORT-NAME>
                      <PORTS>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>ActiveSessionState</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dcm/PortInterfaces/DataServices_ActiveSessionState</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>SgbdIndex</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dcm/PortInterfaces/DataServices_SgbdIndex</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>DiagCommLoopback</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dcm/PortInterfaces/RoutineServices_DiagCommLoopback</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>CheckProgrammingPreconditions</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dcm/PortInterfaces/RoutineServices_CheckProgrammingPreconditions</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>ServiceRequestManufacturerNotificationPort</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dcm/PortInterfaces/ServiceRequestNotification</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>AllowOpModeChangePort</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Omc/PortInterfaces/OmcModesCallouts</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>AllowOpModeChangeCbkPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Omc/PortInterfaces/OmcModesCalloutsResult</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>ClearSecondaryErrorMemory</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dcm/PortInterfaces/RoutineServices_ClearDTCSecondaryErrorMemory</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>ComControlModeRequestPort</SHORT-NAME>
                          <PROVIDED-INTERFACE-TREF DEST="SENDER-RECEIVER-INTERFACE">/BMW/Platform/StdDiag/PortInterfaces/ComControlModeRequestInterface</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <P-PORT-PROTOTYPE>
                          <SHORT-NAME>LifeCycle</SHORT-NAME>
                          <PROVIDED-COM-SPECS>
                             <MODE-SWITCH-SENDER-COM-SPEC>
                                <ENHANCED-MODE-API>true</ENHANCED-MODE-API>
                                <MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycle/Mode</MODE-GROUP-REF>
                                <QUEUE-LENGTH>2</QUEUE-LENGTH>
                             </MODE-SWITCH-SENDER-COM-SPEC>
                          </PROVIDED-COM-SPECS>
                          <PROVIDED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycle</PROVIDED-INTERFACE-TREF>
                        </P-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>DCMServicesPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dcm/PortInterfaces/StdDiagDCMServices</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>EnableConditionPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dem/PortInterfaces/EnableCondition</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>RoeStatePort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Darh/PortInterfaces/RoeStateInterface</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>ReportErrorPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Det/PortInterfaces/DETService</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>LifeCycleRequest</SHORT-NAME>
                          <REQUIRED-COM-SPECS>
                            <NONQUEUED-RECEIVER-COM-SPEC>
                              <DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycleRequest/requestMode</DATA-ELEMENT-REF>
                              <HANDLE-OUT-OF-RANGE>NONE</HANDLE-OUT-OF-RANGE>
                              <USES-END-TO-END-PROTECTION>false</USES-END-TO-END-PROTECTION>
                              <ALIVE-TIMEOUT>0.0</ALIVE-TIMEOUT>
                              <ENABLE-UPDATE>false</ENABLE-UPDATE>
                              <HANDLE-NEVER-RECEIVED>false</HANDLE-NEVER-RECEIVED>
                              <HANDLE-TIMEOUT-TYPE>NONE</HANDLE-TIMEOUT-TYPE>
                              <INIT-VALUE>
                                <NUMERICAL-VALUE-SPECIFICATION>
                                  <SHORT-LABEL>StdDiag_requestModeInitialValue</SHORT-LABEL>
                                  <VALUE>2</VALUE>
                                </NUMERICAL-VALUE-SPECIFICATION>
                              </INIT-VALUE>
                            </NONQUEUED-RECEIVER-COM-SPEC>
                          </REQUIRED-COM-SPECS>
                          <REQUIRED-INTERFACE-TREF DEST="SENDER-RECEIVER-INTERFACE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycleRequest</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>SessionChangeIndicationPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/StdDiag/PortInterfaces/SessionChangeIndicationInterface</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>OperatingModeControlPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/StdDiag/Omc/PortInterfaces/OperatingModeNotification</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>ExtendedOperatingModeControlPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/StdDiag/Omc/PortInterfaces/ExtendedOperatingModeNotification</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>VehicleStatePort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/StdDiag/Stm/PortInterfaces/VehicleStateModeInterface</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>ComControlNormalModeAccessPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="MODE-SWITCH-INTERFACE">/BMW/Platform/StdDiag/PortInterfaces/ComControlNormalNotificationInterface</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                        <R-PORT-PROTOTYPE>
                          <SHORT-NAME>ClearDTCPort</SHORT-NAME>
                          <REQUIRED-INTERFACE-TREF DEST="CLIENT-SERVER-INTERFACE">/BMW/Platform/StdDiag/Dem/PortInterfaces/CddIf</REQUIRED-INTERFACE-TREF>
                        </R-PORT-PROTOTYPE>
                      </PORTS>
                      <INTERNAL-BEHAVIORS>
                        <SWC-INTERNAL-BEHAVIOR>
                          <SHORT-NAME>IntBhv_StdDiag</SHORT-NAME>
                          <DATA-TYPE-MAPPING-REFS>
                            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/BMW/Platform/StdDiag/DataTypeMappingSets/StdDiag_DataTypeMappingSet</DATA-TYPE-MAPPING-REF>
                            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/BMW/Platform/StdDiag/Omc/DataTypeMappingSets/Omc_DataTypeMappingSets</DATA-TYPE-MAPPING-REF>
                            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">/BMW/Platform/StdDiag/Stm/DataTypeMappingSets/Stm_VehicleStatModeRequestTypeMap</DATA-TYPE-MAPPING-REF>
                          </DATA-TYPE-MAPPING-REFS>
                          <EVENTS>
                            <SWC-MODE-SWITCH-EVENT>
                              <SHORT-NAME>Event_SessionChange_DefaultSession</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/SessionChange_DefaultSession</START-ON-EVENT-REF>
                              <ACTIVATION>ON-ENTRY</ACTIVATION>
                              <MODE-IREFS>
                                <MODE-IREF>
                                  <CONTEXT-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/SessionChangeIndicationPort</CONTEXT-PORT-REF>
                                  <CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/SessionChangeIndicationInterface/SessionModeDeclarationGroup</CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF>
                                  <TARGET-MODE-DECLARATION-REF DEST="MODE-DECLARATION">/BMW/Platform/StdDiag/ModeDeclarationGroups/StdDiag_SessionModeGroup/STDDIAG_DEFAULT_SESSION</TARGET-MODE-DECLARATION-REF>
                                </MODE-IREF>
                              </MODE-IREFS>
                            </SWC-MODE-SWITCH-EVENT>
                            <SWC-MODE-SWITCH-EVENT>
                              <SHORT-NAME>Event_SessionChange_OtherSession</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/SessionChange_OtherSession</START-ON-EVENT-REF>
                              <ACTIVATION>ON-ENTRY</ACTIVATION>
                              <MODE-IREFS>
                                <MODE-IREF>
                                  <CONTEXT-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/SessionChangeIndicationPort</CONTEXT-PORT-REF>
                                  <CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/SessionChangeIndicationInterface/SessionModeDeclarationGroup</CONTEXT-MODE-DECLARATION-GROUP-PROTOTYPE-REF>
                                  <TARGET-MODE-DECLARATION-REF DEST="MODE-DECLARATION">/BMW/Platform/StdDiag/ModeDeclarationGroups/StdDiag_SessionModeGroup/STDDIAG_OTHER_SESSION</TARGET-MODE-DECLARATION-REF>
                                </MODE-IREF>
                              </MODE-IREFS>
                            </SWC-MODE-SWITCH-EVENT>
                            <DATA-RECEIVED-EVENT>
                              <SHORT-NAME>LifeCycleRequest</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/LifeCycleHandler</START-ON-EVENT-REF>
                              <DATA-IREF>
                                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/LifeCycleRequest</CONTEXT-R-PORT-REF>
                                <TARGET-DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycleRequest/requestMode</TARGET-DATA-ELEMENT-REF>
                              </DATA-IREF>
                            </DATA-RECEIVED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_ManufacturerIndication</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/ManufacturerIndication</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ServiceRequestManufacturerNotificationPort</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/ServiceRequestNotification/Indication</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_ManufacturerConfirmation</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/ManufacturerConfirmation</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ServiceRequestManufacturerNotificationPort</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/ServiceRequestNotification/Confirmation</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_AllowOpModeChange</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/AllowOpModeChange</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/AllowOpModeChangePort</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Omc/PortInterfaces/OmcModesCallouts/AllowOpModeSwitch</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_OpModeChangeCancelled</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/OpModeChangeCancelled</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/AllowOpModeChangePort</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Omc/PortInterfaces/OmcModesCallouts/OpModeSwitchCancelled</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_ConditionCheckActiveSessionState</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/ConditionCheckActiveSessionState</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ActiveSessionState</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/DataServices_ActiveSessionState/ConditionCheckRead</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_ReadDataActiveSessionState</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/ReadDataActiveSessionState</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ActiveSessionState</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/DataServices_ActiveSessionState/ReadData</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_ReadDataSgbdIndex</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/ReadDataSgbdIndex</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/SgbdIndex</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/DataServices_SgbdIndex/ReadData</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_RoutineControlStartDiagCommLoopback</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/RoutineControlStartDiagCommLoopback</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/DiagCommLoopback</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/RoutineServices_DiagCommLoopback/Start</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_RoutineControlStartCheckProgrammingPreconditions</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/RoutineControlStartCheckProgrammingPreconditions</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/CheckProgrammingPreconditions</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/RoutineServices_CheckProgrammingPreconditions/Start</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                            <OPERATION-INVOKED-EVENT>
                              <SHORT-NAME>Event_RoutineControlStartClearDTCSecondaryErrorMemory</SHORT-NAME>
                              <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/IntBhv_StdDiag/RoutineControlStartClearDTCSecondaryErrorMemory</START-ON-EVENT-REF>
                              <OPERATION-IREF>
                                <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ClearSecondaryErrorMemory</CONTEXT-P-PORT-REF>
                                <TARGET-PROVIDED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/RoutineServices_ClearDTCSecondaryErrorMemory/Start</TARGET-PROVIDED-OPERATION-REF>
                              </OPERATION-IREF>
                            </OPERATION-INVOKED-EVENT>
                          </EVENTS>
                          <HANDLE-TERMINATION-AND-RESTART>NO-SUPPORT</HANDLE-TERMINATION-AND-RESTART>
                          <RUNNABLES>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>LifeCycleHandler</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>false</CAN-BE-INVOKED-CONCURRENTLY>
                              <DATA-READ-ACCESSS>
                                <VARIABLE-ACCESS>
                                  <SHORT-NAME>requestedMode</SHORT-NAME>
                                  <ACCESSED-VARIABLE>
                                    <AUTOSAR-VARIABLE-IREF>
                                      <PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/LifeCycleRequest</PORT-PROTOTYPE-REF>
                                      <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycleRequest/requestMode</TARGET-DATA-PROTOTYPE-REF>
                                    </AUTOSAR-VARIABLE-IREF>
                                  </ACCESSED-VARIABLE>
                                </VARIABLE-ACCESS>
                              </DATA-READ-ACCESSS>
                              <DATA-SEND-POINTS>
                                <VARIABLE-ACCESS>
                                  <SHORT-NAME>VariableAccess_requestComMode</SHORT-NAME>
                                  <ACCESSED-VARIABLE>
                                    <AUTOSAR-VARIABLE-IREF>
                                      <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ComControlModeRequestPort</PORT-PROTOTYPE-REF>
                                      <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ComControlModeRequestInterface/requestedMode</TARGET-DATA-PROTOTYPE-REF>
                                    </AUTOSAR-VARIABLE-IREF>
                                  </ACCESSED-VARIABLE>
                                </VARIABLE-ACCESS>
                              </DATA-SEND-POINTS>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/LifeCycle</CONTEXT-P-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycle/Mode</TARGET-MODE-GROUP-REF>
                                    </P-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/OperatingModeControlPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Omc/PortInterfaces/OperatingModeNotification/currentOperatingMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ExtendedOperatingModeControlPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Omc/PortInterfaces/ExtendedOperatingModeNotification/currentExtendedOperatingMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <MODE-SWITCH-POINTS>
                                <MODE-SWITCH-POINT>
                                  <SHORT-NAME>LifeCycle</SHORT-NAME>
                                  <MODE-GROUP-IREF>
                                    <CONTEXT-P-PORT-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/LifeCycle</CONTEXT-P-PORT-REF>
                                    <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ILifeCycle/Mode</TARGET-MODE-GROUP-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-SWITCH-POINT>
                              </MODE-SWITCH-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_EnableCondition</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/EnableConditionPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dem/PortInterfaces/EnableCondition/SetEnableCondition</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_SetRoeSuspended</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/RoeStatePort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Darh/PortInterfaces/RoeStateInterface/GetRoeState</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_DetError</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ReportErrorPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Det/PortInterfaces/DETService/ReportError</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_DcmGetSesCtrlType</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/DCMServicesPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/StdDiagDCMServices/GetSesCtrlType</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>StdDiag_LifeCycleHandler</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>ManufacturerIndication</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/OperatingModeControlPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Omc/PortInterfaces/OperatingModeNotification/currentOperatingMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_DetError</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ReportErrorPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Det/PortInterfaces/DETService/ReportError</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>StdDiag_ManufacturerIndication</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>ManufacturerConfirmation</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <DATA-SEND-POINTS>
                                <VARIABLE-ACCESS>
                                  <SHORT-NAME>VariableAccess_requestComMode</SHORT-NAME>
                                  <ACCESSED-VARIABLE>
                                    <AUTOSAR-VARIABLE-IREF>
                                      <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ComControlModeRequestPort</PORT-PROTOTYPE-REF>
                                      <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ComControlModeRequestInterface/requestedMode</TARGET-DATA-PROTOTYPE-REF>
                                    </AUTOSAR-VARIABLE-IREF>
                                  </ACCESSED-VARIABLE>
                                </VARIABLE-ACCESS>
                              </DATA-SEND-POINTS>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/OperatingModeControlPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Omc/PortInterfaces/OperatingModeNotification/currentOperatingMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ExtendedOperatingModeControlPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Omc/PortInterfaces/ExtendedOperatingModeNotification/currentExtendedOperatingMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ComControlNormalModeAccessPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ComControlNormalNotificationInterface/CommunicationModeDeclarationGroup</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_DetError</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ReportErrorPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Det/PortInterfaces/DETService/ReportError</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_EnableCondition</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/EnableConditionPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dem/PortInterfaces/EnableCondition/SetEnableCondition</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_SetRoeSuspended</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/RoeStatePort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Darh/PortInterfaces/RoeStateInterface/GetRoeState</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>StdDiag_ManufacturerConfirmation</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>AllowOpModeChange</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/VehicleStatePort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Stm/PortInterfaces/VehicleStateModeInterface/currentVehicleStateMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <SYMBOL>StdDiag_AllowOpModeChange</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>OpModeChangeCancelled</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <SYMBOL>StdDiag_OpModeChangeCancelled</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>ReadDataSgbdIndex</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <SYMBOL>StdDiag_ReadSgbdIndex</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>ReadDataActiveSessionState</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <SYMBOL>StdDiag_ReadActiveSessionState</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>ConditionCheckActiveSessionState</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_DcmGetSesCtrlType</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/DCMServicesPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dcm/PortInterfaces/StdDiagDCMServices/GetSesCtrlType</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_DetError</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ReportErrorPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Det/PortInterfaces/DETService/ReportError</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                             </SERVER-CALL-POINTS>
                              <SYMBOL>StdDiag_ConditionCheckActiveSessionState</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>RoutineControlStartDiagCommLoopback</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <SYMBOL>StdDiag_RoutineControlStartDiagCommLoopback</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>RoutineControlStartCheckProgrammingPreconditions</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <SERVER-CALL-POINTS>
                             </SERVER-CALL-POINTS>
                              <SYMBOL>StdDiag_RoutineControlStartCheckProgrammingPreconditions</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>SessionChange_DefaultSession</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>false</CAN-BE-INVOKED-CONCURRENTLY>
                              <DATA-SEND-POINTS>
                                <VARIABLE-ACCESS>
                                  <SHORT-NAME>VariableAccess_requestComMode</SHORT-NAME>
                                  <ACCESSED-VARIABLE>
                                    <AUTOSAR-VARIABLE-IREF>
                                      <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ComControlModeRequestPort</PORT-PROTOTYPE-REF>
                                      <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ComControlModeRequestInterface/requestedMode</TARGET-DATA-PROTOTYPE-REF>
                                    </AUTOSAR-VARIABLE-IREF>
                                  </ACCESSED-VARIABLE>
                                </VARIABLE-ACCESS>
                              </DATA-SEND-POINTS>
                              <MODE-ACCESS-POINTS>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/OperatingModeControlPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Omc/PortInterfaces/OperatingModeNotification/currentOperatingMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ExtendedOperatingModeControlPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/Omc/PortInterfaces/ExtendedOperatingModeNotification/currentExtendedOperatingMode</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                                <MODE-ACCESS-POINT>
                                  <MODE-GROUP-IREF>
                                    <R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                      <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ComControlNormalModeAccessPort</CONTEXT-R-PORT-REF>
                                      <TARGET-MODE-GROUP-REF DEST="MODE-DECLARATION-GROUP-PROTOTYPE">/BMW/Platform/StdDiag/PortInterfaces/ComControlNormalNotificationInterface/CommunicationModeDeclarationGroup</TARGET-MODE-GROUP-REF>
                                    </R-MODE-GROUP-IN-ATOMIC-SWC-INSTANCE-REF>
                                  </MODE-GROUP-IREF>
                                </MODE-ACCESS-POINT>
                              </MODE-ACCESS-POINTS>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_DetError</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ReportErrorPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Det/PortInterfaces/DETService/ReportError</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_EnableCondition</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/EnableConditionPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dem/PortInterfaces/EnableCondition/SetEnableCondition</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_SetRoeSuspended</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/RoeStatePort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Darh/PortInterfaces/RoeStateInterface/GetRoeState</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>StdDiag_SesChgIndication_DefaultSession</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>SessionChange_OtherSession</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>false</CAN-BE-INVOKED-CONCURRENTLY>
                              <SYMBOL>StdDiag_SesChgIndication_OtherSession</SYMBOL>
                            </RUNNABLE-ENTITY>
                            <RUNNABLE-ENTITY>
                              <SHORT-NAME>RoutineControlStartClearDTCSecondaryErrorMemory</SHORT-NAME>
                              <MINIMUM-START-INTERVAL>0.0</MINIMUM-START-INTERVAL>
                              <CAN-BE-INVOKED-CONCURRENTLY>true</CAN-BE-INVOKED-CONCURRENTLY>
                              <SERVER-CALL-POINTS>
                                <SYNCHRONOUS-SERVER-CALL-POINT>
                                  <SHORT-NAME>sscp_ClearDTC</SHORT-NAME>
                                  <OPERATION-IREF>
                                    <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ClearDTCPort</CONTEXT-R-PORT-REF>
                                    <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION">/BMW/Platform/StdDiag/Dem/PortInterfaces/CddIf/ClearDTC</TARGET-REQUIRED-OPERATION-REF>
                                  </OPERATION-IREF>
                                  <TIMEOUT>0.0</TIMEOUT>
                                </SYNCHRONOUS-SERVER-CALL-POINT>
                              </SERVER-CALL-POINTS>
                              <SYMBOL>StdDiag_RoutineControlStartClearDTCSecondaryErrorMemory</SYMBOL>
                            </RUNNABLE-ENTITY>
                          </RUNNABLES>
                          <SERVICE-DEPENDENCYS>
                            <SWC-SERVICE-DEPENDENCY>
                              <SHORT-NAME>StdDiag_DiagnosticValueServiceNeeds_ActiveSessionState</SHORT-NAME>
                              <ASSIGNED-PORTS>
                                <ROLE-BASED-PORT-ASSIGNMENT>
                                  <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ActiveSessionState</PORT-PROTOTYPE-REF>
                                  <ROLE>DataServices</ROLE>
                                </ROLE-BASED-PORT-ASSIGNMENT>
                              </ASSIGNED-PORTS>
                              <SERVICE-NEEDS>
                                <DIAGNOSTIC-VALUE-NEEDS>
                                  <SHORT-NAME>sn_StdDiag_DiagnosticValueServiceNeeds_ActiveSessionState</SHORT-NAME>
                                  <DATA-LENGTH>1</DATA-LENGTH>
                                  <DIAGNOSTIC-VALUE-ACCESS>READ-ONLY</DIAGNOSTIC-VALUE-ACCESS>
                                  <DID-NUMBER>61696</DID-NUMBER>
                                </DIAGNOSTIC-VALUE-NEEDS>
                              </SERVICE-NEEDS>
                            </SWC-SERVICE-DEPENDENCY>
                            <SWC-SERVICE-DEPENDENCY>
                              <SHORT-NAME>StdDiag_DiagnosticCommunicationManagerServiceNeeds_ServiceRequestNotification</SHORT-NAME>
                              <ASSIGNED-PORTS>
                                <ROLE-BASED-PORT-ASSIGNMENT>
                                  <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ServiceRequestManufacturerNotificationPort</PORT-PROTOTYPE-REF>
                                  <ROLE>ServiceRequestNotification</ROLE>
                                </ROLE-BASED-PORT-ASSIGNMENT>
                              </ASSIGNED-PORTS>
                              <SERVICE-NEEDS>
                                <DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS>
                                  <SHORT-NAME>sn_StdDiag_DiagnosticCommunicationManagerServiceNeeds</SHORT-NAME>
                                </DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS>
                              </SERVICE-NEEDS>
                            </SWC-SERVICE-DEPENDENCY>
                            <SWC-SERVICE-DEPENDENCY>
                              <SHORT-NAME>StdDiag_DiagnosticRoutineServiceNeeds_CheckProgrammingPreconditions</SHORT-NAME>
                              <ASSIGNED-PORTS>
                                <ROLE-BASED-PORT-ASSIGNMENT>
                                  <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/CheckProgrammingPreconditions</PORT-PROTOTYPE-REF>
                                  <ROLE>RoutineServices</ROLE>
                                </ROLE-BASED-PORT-ASSIGNMENT>
                              </ASSIGNED-PORTS>
                              <SERVICE-NEEDS>
                                <DIAGNOSTIC-ROUTINE-NEEDS>
                                  <SHORT-NAME>sn_StdDiag_DiagnosticRoutingServiceNeeds_CheckProgrammingPreconditions</SHORT-NAME>
                                  <DIAG-ROUTINE-TYPE>SYNCHRONOUS</DIAG-ROUTINE-TYPE>
                                  <RID-NUMBER>515</RID-NUMBER>
                                </DIAGNOSTIC-ROUTINE-NEEDS>
                              </SERVICE-NEEDS>
                            </SWC-SERVICE-DEPENDENCY>
                            <SWC-SERVICE-DEPENDENCY>
                              <SHORT-NAME>StdDiag_DiagnosticRoutineServiceNeeds_DiagCommLoopBack</SHORT-NAME>
                              <ASSIGNED-PORTS>
                                <ROLE-BASED-PORT-ASSIGNMENT>
                                  <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/DiagCommLoopback</PORT-PROTOTYPE-REF>
                                  <ROLE>RoutineServices</ROLE>
                                </ROLE-BASED-PORT-ASSIGNMENT>
                              </ASSIGNED-PORTS>
                              <SERVICE-NEEDS>
                                <DIAGNOSTIC-ROUTINE-NEEDS>
                                  <SHORT-NAME>sn_StdDiag_DiagnosticRoutingServiceNeeds_DiagCommLoopBack</SHORT-NAME>
                                  <DIAG-ROUTINE-TYPE>SYNCHRONOUS</DIAG-ROUTINE-TYPE>
                                  <RID-NUMBER>771</RID-NUMBER>
                                </DIAGNOSTIC-ROUTINE-NEEDS>
                              </SERVICE-NEEDS>
                            </SWC-SERVICE-DEPENDENCY>
                            <SWC-SERVICE-DEPENDENCY>
                              <SHORT-NAME>StdDiag_DiagnosticRoutineServiceNeeds_ClearDTCSecondaryErrorMemory</SHORT-NAME>
                              <ASSIGNED-PORTS>
                                <ROLE-BASED-PORT-ASSIGNMENT>
                                  <PORT-PROTOTYPE-REF DEST="P-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/ClearSecondaryErrorMemory</PORT-PROTOTYPE-REF>
                                  <ROLE>RoutineServices</ROLE>
                                </ROLE-BASED-PORT-ASSIGNMENT>
                              </ASSIGNED-PORTS>
                              <SERVICE-NEEDS>
                                <DIAGNOSTIC-ROUTINE-NEEDS>
                                  <SHORT-NAME>sn_StdDiag_DiagnosticRoutineServiceNeeds_ClearDTCSecondaryErrorMemory</SHORT-NAME>
                                  <DIAG-ROUTINE-TYPE>ASYNCHRONOUS</DIAG-ROUTINE-TYPE>
                                  <RID-NUMBER>3846</RID-NUMBER>
                                </DIAGNOSTIC-ROUTINE-NEEDS>
                              </SERVICE-NEEDS>
                            </SWC-SERVICE-DEPENDENCY>
                            <SWC-SERVICE-DEPENDENCY>
                              <SHORT-NAME>StdDiag_DiagnosticCommunicationManagerServiceNeeds_DCMServices</SHORT-NAME>
                              <ASSIGNED-PORTS>
                                <ROLE-BASED-PORT-ASSIGNMENT>
                                  <PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/DCMServicesPort</PORT-PROTOTYPE-REF>
                                  <ROLE>DCMServices</ROLE>
                                </ROLE-BASED-PORT-ASSIGNMENT>
                              </ASSIGNED-PORTS>
                              <SERVICE-NEEDS>
                                <DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS>
                                  <SHORT-NAME>sn_StdDiag_DiagnosticCommunicationManagerServiceNeeds_DCMServices</SHORT-NAME>
                                </DIAGNOSTIC-COMMUNICATION-MANAGER-NEEDS>
                              </SERVICE-NEEDS>
                            </SWC-SERVICE-DEPENDENCY>
                            <SWC-SERVICE-DEPENDENCY>
                              <SHORT-NAME>StdDiag_DiagnosticEventManagerServiceNeeds_EnableCondition</SHORT-NAME>
                              <ASSIGNED-PORTS>
                                <ROLE-BASED-PORT-ASSIGNMENT>
                                  <PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/BMW/Platform/StdDiag/SwComponentTypes/StdDiag/EnableConditionPort</PORT-PROTOTYPE-REF>
                                  <ROLE>EnableCondition</ROLE>
                                </ROLE-BASED-PORT-ASSIGNMENT>
                              </ASSIGNED-PORTS>
                              <SERVICE-NEEDS>
                                <DIAGNOSTIC-EVENT-MANAGER-NEEDS>
                                  <SHORT-NAME>sn_StdDiag_DiagnosticEventManagerServiceNeeds_EnableCondition</SHORT-NAME>
                                </DIAGNOSTIC-EVENT-MANAGER-NEEDS>
                              </SERVICE-NEEDS>
                            </SWC-SERVICE-DEPENDENCY>
                          </SERVICE-DEPENDENCYS>
                          <SUPPORTS-MULTIPLE-INSTANTIATION>false</SUPPORTS-MULTIPLE-INSTANTIATION>
                        </SWC-INTERNAL-BEHAVIOR>
                      </INTERNAL-BEHAVIORS>
                    </APPLICATION-SW-COMPONENT-TYPE>
                  </ELEMENTS>
                </AR-PACKAGE>
              </AR-PACKAGES>
            </AR-PACKAGE>
          </AR-PACKAGES>
        </AR-PACKAGE>
      </AR-PACKAGES>
    </AR-PACKAGE>
  </AR-PACKAGES>
</AUTOSAR>
